nlmeMinimum 25 rental properties. Minimum 10 Airbnbs. Per month.
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 11.19 24.70 42.44 98.78 94.26 3050.81
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 29.82 125.44 240.56 358.67 443.70 4483.07
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 10.00 15.00 25.00 66.14 62.00 1782.00
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 25.0 108.0 213.0 321.3 391.0 4235.0
Units only
## [1] 355
data %>%
select(SA2_MAIN16, STE_NAME16) %>%
distinct() %>%
group_by(STE_NAME16) %>%
summarize(areas = n())## # A tibble: 8 x 2
## STE_NAME16 areas
## <chr> <int>
## 1 Australian Capital Territory 8
## 2 New South Wales 124
## 3 Northern Territory 2
## 4 Queensland 85
## 5 South Australia 16
## 6 Tasmania 11
## 7 Victoria 78
## 8 Western Australia 31
ggplot(data, aes(x = date, y = rent_50p_int)) +
geom_line(aes(group = SA2_MAIN16), alpha = .5) +
# geom_smooth(method = "lm", se = FALSE) +
geom_smooth(aes(weight = record_count)) +
theme_minimal() + xlab("") + ylab("Rent") +
facet_wrap(~STE_NAME16)ggplot(data, aes(x = date, y = adr_50p_int)) +
geom_line(aes(group = SA2_MAIN16), alpha = .5) +
# geom_smooth(method = "lm", se = FALSE) +
geom_smooth(aes(weight = n_listings_int)) +
theme_minimal() + xlab("") + ylab("AWR") +
facet_wrap(~STE_NAME16)data %>%
filter(STE_NAME16 != "Northern Territory") %>%
ggplot(aes(x = rent_50p_int, y = adr_50p_int)) +
geom_point(aes(size = n_listings_int)) +
# geom_smooth(aes(weight = n_listings_int), method = "lm", se = FALSE)
geom_smooth(aes(weight = n_listings_int)) +
theme_minimal() + xlab("Rent") + ylab("AWR") +
facet_wrap(~STE_NAME16)data %>%
filter(STE_NAME16 != "Northern Territory") %>%
filter(STE_NAME16 != "Australian Capital Territory") %>%
ggplot(aes(x = rent_50p_int, y = adr_50p_int)) +
# geom_point(aes(size = n_listings_int, col = STE_NAME16)) +
# geom_smooth(aes(weight = n_listings_int), method = "lm", se = FALSE) +
geom_smooth(aes(weight = n_listings_int, col = STE_NAME16)) +
facet_wrap(~time) +
theme_minimal() + xlab("Rent") + ylab("AWR") +
theme(strip.text.x = element_blank()) data %>%
filter(STE_NAME16 != "Northern Territory") %>%
filter(time == 27) %>%
ggplot(aes(x = rent_50p_int, y = adr_50p_int)) +
geom_point(aes(size = n_listings_int)) +
# geom_smooth(aes(weight = n_listings_int), method = "lm", se = FALSE)
geom_smooth(aes(weight = n_listings_int)) +
theme_minimal() + xlab("Rent") + ylab("AWR") +
facet_wrap(~STE_NAME16)# rent linear
data %>%
# filter(STE_NAME16 != "Northern Territory") %>%
ggplot(aes(x = time, y = rent_50p_int/100)) +
# annotate("text", x = 0, y = 200, label = unique(data$SA2_NAME16)) +
# geom_point(aes(size = record_count), alpha = 0.3) +
geom_smooth(aes(group = interaction(SA2_NAME16, STE_NAME16),
weight = record_count_int,
col = STE_NAME16),
method = "lm", se = FALSE) +
facet_wrap(STE_NAME16~SA2_NAME16) +
theme_minimal() + xlab("") + ylab(("")) +
theme(strip.text.x = element_blank()) # rent smooth
data %>%
# filter(STE_NAME16 != "Northern Territory") %>%
ggplot(aes(x = time, y = rent_50p_int/100)) +
# annotate("text", x = 0, y = 200, label = unique(data$SA2_NAME16)) +
# geom_point(aes(size = record_count), alpha = 0.3) +
geom_smooth(aes(group = interaction(SA2_NAME16, STE_NAME16),
weight = n_listings_int,
col = STE_NAME16), se = FALSE) +
facet_wrap(STE_NAME16~SA2_NAME16) +
theme_minimal() + xlab("") + ylab(("")) +
theme(strip.text.x = element_blank(),
axis.title.x=element_blank(),
axis.text.x=element_blank(),
axis.ticks.x=element_blank(),
axis.title.y=element_blank(),
axis.text.y=element_blank(),
axis.ticks.y=element_blank())## adr, linear
ggplot(data, aes(x = time, y = adr_50p_int/1000, group = SA2_NAME16)) +
# annotate("text", x = 0, y = 200, label = unique(data$SA2_NAME16)) +
# geom_point(aes(size = n_listings_int), alpha = 0.3) +
geom_smooth(aes(group = interaction(SA2_NAME16, STE_NAME16),
col = STE_NAME16,
weight = n_listings_int),
method = "lm", se = FALSE) +
facet_wrap(STE_NAME16~SA2_NAME16) +
theme_minimal() + xlab("") + ylab(("")) +
theme(strip.text.x = element_blank()) # adr, smooth
ggplot(data, aes(x = time, y = adr_50p_int/1000, group = SA2_NAME16)) +
# annotate("text", x = 0, y = 200, label = unique(data$SA2_NAME16)) +
# geom_point(aes(size = n_listings_int), alpha = 0.3) +
geom_smooth(aes(group = interaction(SA2_NAME16, STE_NAME16),
weight = n_listings_int,
col = STE_NAME16), se = FALSE) +
facet_wrap(STE_NAME16~SA2_NAME16) +
theme_minimal() + xlab("") + ylab(("")) +
theme(strip.text.x = element_blank(),
axis.title.x=element_blank(),
axis.text.x=element_blank(),
axis.ticks.x=element_blank(),
axis.title.y=element_blank(),
axis.text.y=element_blank(),
axis.ticks.y=element_blank())m1 <- lme(rent_50p_int ~ time,
random = ~ 1 | STE_NAME16/SA2_MAIN16,
data = data)
# summary(m1)
#
# data$m1_fit <- fitted(m1)
#
# ggplot(data, aes(x = rent_50p_int)) +
# geom_point(aes(y = m1_fit, size = n_listings_int),
# alpha = 0.3) +
# geom_line(aes(y = rent_50p_int), col = "darkorchid4") +
# facet_wrap(~STE_NAME16) +
# theme_minimal() + xlab("Rent") + ylab("Predicted") m2 <- lme(rent_50p_int ~ adr_50p_int + time,
random = ~ 1 | STE_NAME16/SA2_MAIN16,
data = data)
# summary(m2)
#
# # anova(m1, m2)
#
# data$m2_fit <- fitted(m2)
#
# ggplot(data, aes(x = rent_50p_int)) +
# geom_point(aes(y = m2_fit, size = n_listings_int),
# alpha = 0.3) +
# geom_line(aes(y = rent_50p_int), col = "darkorchid4") +
# facet_wrap(~STE_NAME16) +
# theme_minimal() + xlab("Rent") + ylab("Predicted")
#
# plot(ggpredict(m2, "time"))
#
# plot(ggpredict(m2, terms = "adr_50p_int"))m3 <- lme(rent_50p_int ~ adr_50p_int + time,
random = ~ time | STE_NAME16/SA2_MAIN16,
data = data)
# summary(m3)
#
# # anova(m2, m3)
#
# data$m3_fit <- fitted(m3)
#
# ggplot(data, aes(x = rent_50p_int)) +
# geom_point(aes(y = m3_fit, size = n_listings_int),
# alpha = 0.3) +
# geom_line(aes(y = rent_50p_int), col = "darkorchid4") +
# facet_wrap(~STE_NAME16) +
# theme_minimal() + xlab("Rent") + ylab("Predicted")
#
# plot(ggpredict(m3, "time"))
# # plot(ggpredict(m3, terms = c("time", "STE_NAME16")))
#
# plot(ggpredict(m3, terms = "adr_50p_int"))
# # plot(ggpredict(m3, terms = c("adr_50p_int", "STE_NAME16")))m4 <- lme(rent_50p_int ~ adr_50p_int + time,
random = ~ 1 | STE_NAME16/SA2_MAIN16,
correlation = corAR1(),
data = data)
# summary(m4)
#
# # anova(m3, m4)
#
# data$m4_fit <- fitted(m4)
#
# ggplot(data, aes(x = rent_50p_int)) +
# geom_point(aes(y = m1_fit, size = n_listings_int),
# alpha = 0.3) +
# geom_line(aes(y = rent_50p_int), col = "darkorchid4") +
# facet_wrap(~STE_NAME16) +
# theme_minimal() + xlab("Rent") + ylab("Predicted")
#
# plot(ggpredict(m4, "time"))
#
# plot(ggpredict(m4, terms = "adr_50p_int"))
# fixef(m4)
# ranef(m4)
# plot(ACF(m4), alpha = 0.05)m5 <- lme(rent_50p_int ~ adr_50p_int + time,
random = ~ time | STE_NAME16/SA2_MAIN16,
correlation = corAR1(form = ~ time | STE_NAME16/SA2_MAIN16),
data = data)
# summary(m5)
#
# # anova(m4, m5)
# # anova(m3, m5)
# # anova(m2, m5)
#
# data$m5_fit <- fitted(m5)
#
# ggplot(data, aes(x = rent_50p_int)) +
# geom_point(aes(y = m1_fit, size = n_listings_int),
# alpha = 0.3) +
# geom_line(aes(y = rent_50p_int), col = "darkorchid4") +
# facet_wrap(~STE_NAME16) +
# theme_minimal() + xlab("Rent") + ylab("Predicted")
#
# plot(ggpredict(m5, "time"))
#
# plot(ggpredict(m5, terms = "adr_50p_int"))
# fixef(m5)
# ranef(m5)
# plot(ACF(m5), alpha = 0.05)## Random effect variances not available. Returned R2 does not account for random effects.
## Random effect variances not available. Returned R2 does not account for random effects.
## Random effect variances not available. Returned R2 does not account for random effects.
## Model Type AIC BIC RMSE R2_conditional R2_marginal ICC
## 1 m1 lme 75327.56 75363.39 10.451215 NA 0.24964040 NA
## 2 m2 lme 75195.98 75238.99 10.369805 NA 0.38903552 NA
## 3 m3 lme 69065.01 69136.69 6.867411 0.9240143 0.05619619 0.9194899
## 4 m4 lme 63429.76 63479.94 11.738097 NA 0.09297640 NA
## 5 m5 lme 63221.49 63300.34 7.857693 NA NA NA
## BF
## 1 NA
## 2 1032686528868859699840460824
## 3 Inf
## 4 Inf
## 5 Inf
as_tibble(list(
Model = as.character(c(1:5)),
AIC = c(AIC(m1), AIC(m2), AIC(m3), AIC(m4), AIC(m5)))) %>%
ggplot() +
geom_col(aes(y= AIC, x = Model)) +
coord_flip() +
theme_minimal()## Linear mixed-effects model fit by REML
## Data: data
## AIC BIC logLik
## 63221.49 63300.34 -31599.75
##
## Random effects:
## Formula: ~time | STE_NAME16
## Structure: General positive-definite, Log-Cholesky parametrization
## StdDev Corr
## (Intercept) 69.937911 (Intr)
## time 1.028778 -0.093
##
## Formula: ~time | SA2_MAIN16 %in% STE_NAME16
## Structure: General positive-definite, Log-Cholesky parametrization
## StdDev Corr
## (Intercept) 98.7837579 (Intr)
## time 0.5812841 -0.14
## Residual 9.9861665
##
## Correlation Structure: AR(1)
## Formula: ~time | STE_NAME16/SA2_MAIN16
## Parameter estimate(s):
## Phi
## 0.8247591
## Fixed effects: rent_50p_int ~ adr_50p_int + time
## Value Std.Error DF t-value p-value
## (Intercept) 376.8260 26.771137 9228 14.075833 0.0000
## adr_50p_int 0.0017 0.002578 9228 0.663236 0.5072
## time 0.7417 0.373385 9228 1.986553 0.0470
## Correlation:
## (Intr) ad_50_
## adr_50p_int -0.109
## time -0.097 0.013
##
## Standardized Within-Group Residuals:
## Min Q1 Med Q3 Max
## -13.11558047 -0.41664183 -0.01358022 0.42731109 17.40627471
##
## Number of Observations: 9585
## Number of Groups:
## STE_NAME16 SA2_MAIN16 %in% STE_NAME16
## 8 355
## Approximate 95% confidence intervals
##
## Fixed effects:
## lower est. upper
## (Intercept) 324.348699012 376.826045851 429.303392690
## adr_50p_int -0.003343967 0.001709997 0.006763961
## time 0.009831793 0.741749658 1.473667522
## attr(,"label")
## [1] "Fixed effects:"
##
## Random Effects:
## Level: STE_NAME16
## lower est. upper
## sd((Intercept)) 37.9739413 69.93791141 128.8070525
## sd(time) 0.9184956 1.02877821 1.1523023
## cor((Intercept),time) -0.3040087 -0.09335209 0.1260079
## Level: SA2_MAIN16
## lower est. upper
## sd((Intercept)) 91.6417782 98.7837579 106.482338211
## sd(time) 0.4985769 0.5812841 0.677711365
## cor((Intercept),time) -0.2821126 -0.1400618 0.007998466
##
## Correlation structure:
## lower est. upper
## Phi 0.7985849 0.8247591 0.8478197
## attr(,"label")
## [1] "Correlation structure:"
##
## Within-group standard error:
## lower est. upper
## 9.307009 9.986166 10.714884
## [[1]]
##
## [[2]]
##
## [[3]]
data$m5_fit <- fitted(m5)
ggplot(data, aes(x = rent_50p_int)) +
geom_point(aes(y = m5_fit,
size = record_count),
# size = n_listings_int),
alpha = 0.3) +
geom_line(aes(y = rent_50p_int), col = "darkorchid4") +
facet_wrap(~STE_NAME16) +
theme_minimal() + xlab("Rent") + ylab("Predicted")# plot(ggpredict(m5, "time"))
#
# plot(ggpredict(m5, terms = "adr_50p_int"))
p1 <- plot(ggpredict(m5, "time"))
p2 <- plot(ggpredict(m5, terms = "adr_50p_int"))
plot_grid(p1, p2)data %>%
filter(SA2_NAME16 %in%
c("Byron Bay",
"Avalon - Palm Beach")) %>%
ggplot(aes(x = date)) +
geom_line(aes(y = m5_fit, group = SA2_NAME16),
col = "darkorchid4") +
geom_point(aes(y = rent_50p_int, size = record_count_int),
col = "#00AFBB", alpha = 0.3) +
# geom_point(aes(y = adr_50p_int, size = n_listings_int),
# col = "#E7B800", alpha = 0.33) +
theme_minimal() +
xlab("") + ylab("Rent / fitted") +
facet_wrap(~SA2_NAME16, scales = "free_y")data %>%
filter(SA2_NAME16 %in%
c("Coolangatta",
"Scarborough - Newport - Moreton Island")) %>%
ggplot(aes(x = date)) +
geom_line(aes(y = m5_fit, group = SA2_NAME16),
col = "darkorchid4") +
geom_point(aes(y = rent_50p_int, size = record_count_int),
col = "#00AFBB", alpha = 0.3) +
# geom_point(aes(y = adr_50p_int, size = n_listings_int),
# col = "#E7B800", alpha = 0.33) +
theme_minimal() +
xlab("") + ylab("Rent / fitted") +
facet_wrap(~SA2_NAME16, scales = "free_y")data %>%
group_by(SA2_NAME16) %>%
summarise(mean_diff = mean(diff),
STE_NAME16 = first(STE_NAME16),
n_listings_int = min(n_listings_int)) %>%
arrange(mean_diff) %>%
print(n = 50)## # A tibble: 355 x 4
## SA2_NAME16 mean_diff STE_NAME16 n_listings_int
## <chr> <dbl> <chr> <int>
## 1 Gladstone -0.0188 Queensland 10
## 2 Portland -0.0174 Victoria 14
## 3 Eden -0.0170 New South Wales 14
## 4 Brunswick Heads - Ocean Shores -0.0167 New South Wales 67
## 5 Peregian Beach - Marcus Beach -0.0161 Queensland 26
## 6 South Townsville - Railway Estate -0.0158 Queensland 12
## 7 Maylands -0.0156 Western Austra~ 40
## 8 Rockingham -0.0142 Western Austra~ 13
## 9 Mansfield (Vic.) -0.0132 Victoria 40
## 10 Avoca Beach - Copacabana -0.0132 New South Wales 66
## 11 Como -0.0124 Western Austra~ 14
## 12 Halls Head - Erskine -0.0121 Western Austra~ 10
## 13 Eimeo - Rural View -0.0118 Queensland 20
## 14 Lenah Valley - Mount Stuart -0.0115 Tasmania 20
## 15 Applecross - Ardross -0.0114 Western Austra~ 19
## 16 Mandurah -0.0108 Western Austra~ 60
## 17 Tully -0.0108 Queensland 18
## 18 East Victoria Park - Carlisle -0.0107 Western Austra~ 18
## 19 Mosman Park - Peppermint Grove -0.0104 Western Austra~ 37
## 20 Woolgoolga - Arrawarra -0.0101 New South Wales 12
## 21 Orange -0.0100 New South Wales 16
## 22 Coolangatta -0.0100 Queensland 75
## 23 Scarborough -0.00980 Western Austra~ 80
## 24 Maclean - Yamba - Iluka -0.00978 New South Wales 42
## 25 Agnes Water - Miriam Vale -0.00953 Queensland 21
## 26 Victoria Park - Lathlain - Burswood -0.00915 Western Austra~ 46
## 27 Wembley - West Leederville - Glenda~ -0.00896 Western Austra~ 52
## 28 South Perth - Kensington -0.00864 Western Austra~ 107
## 29 Kingston Beach - Blackmans Bay -0.00825 Tasmania 11
## 30 Joondalup - Edgewater -0.00815 Western Austra~ 17
## 31 Fremantle - South -0.00815 Western Austra~ 47
## 32 South Brisbane -0.00805 Queensland 92
## 33 Avalon - Palm Beach -0.00803 New South Wales 91
## 34 Belmont - Ascot - Redcliffe -0.00794 Western Austra~ 13
## 35 Kelvin Grove - Herston -0.00780 Queensland 31
## 36 Albury - South -0.00749 New South Wales 21
## 37 Warrnambool - South -0.00749 Victoria 31
## 38 Claremont (WA) -0.00735 Western Austra~ 33
## 39 Broome -0.00727 Western Austra~ 39
## 40 Jindabyne - Berridale -0.00721 New South Wales 134
## 41 South Hobart - Fern Tree -0.00697 Tasmania 30
## 42 Magnetic Island -0.00676 Queensland 51
## 43 Townsville City - North Ward -0.00663 Queensland 50
## 44 Sunshine Beach -0.00632 Queensland 106
## 45 Mount Martha -0.00629 Victoria 22
## 46 Fortitude Valley -0.00626 Queensland 148
## 47 Nedlands - Dalkeith - Crawley -0.00616 Western Austra~ 38
## 48 Mount Hawthorn - Leederville -0.00598 Western Austra~ 16
## 49 Fitzroy -0.00585 Victoria 197
## 50 East Brisbane -0.00576 Queensland 15
## # ... with 305 more rows
data %>%
filter(SA2_NAME16 %in%
c("Gladstone",
"Peregian Beach - Marcus Beach")) %>%
ggplot(aes(x = date)) +
geom_line(aes(y = m5_fit, group = SA2_NAME16),
col = "darkorchid4") +
geom_point(aes(y = rent_50p_int, size = record_count_int),
col = "#00AFBB", alpha = 0.3) +
geom_point(aes(y = adr_50p_int, size = n_listings_int),
col = "#E7B800", alpha = 0.33) +
theme_minimal() +
xlab("") + ylab("Rent / fitted") +
facet_wrap(~SA2_NAME16, scales = "free_y")data %>%
group_by(SA2_NAME16) %>%
summarise(mean_diff = mean(diff),
STE_NAME16 = first(STE_NAME16),
n_listings_int = min(n_listings_int)) %>%
arrange(desc(mean_diff)) %>%
print(n = 50)## # A tibble: 355 x 4
## SA2_NAME16 mean_diff STE_NAME16 n_listings_int
## <chr> <dbl> <chr> <int>
## 1 Kiama 0.0114 New South Wal~ 36
## 2 Cremorne - Cammeray 0.00961 New South Wal~ 195
## 3 Torquay 0.00909 Victoria 81
## 4 West Hobart 0.00854 Tasmania 35
## 5 Old Bar - Manning Point - Red Head 0.00820 New South Wal~ 15
## 6 Willoughby - Castle Cove - Northbrid~ 0.00812 New South Wal~ 27
## 7 Broadbeach Waters 0.00775 Queensland 24
## 8 Macquarie Park - Marsfield 0.00745 New South Wal~ 17
## 9 Botany 0.00739 New South Wal~ 15
## 10 Main Beach 0.00718 Queensland 34
## 11 Hope Island 0.00688 Queensland 25
## 12 North Sydney - Lavender Bay 0.00682 New South Wal~ 237
## 13 Southport - North 0.00674 Queensland 37
## 14 Sans Souci - Ramsgate 0.00666 New South Wal~ 11
## 15 Dover Heights 0.00650 New South Wal~ 144
## 16 South Yarra - East 0.00641 Victoria 559
## 17 Surry Hills 0.00618 New South Wal~ 612
## 18 Darlinghurst 0.00617 New South Wal~ 671
## 19 Kensington (NSW) 0.00608 New South Wal~ 72
## 20 Port Douglas 0.00601 Queensland 241
## 21 Brighton (Vic.) 0.00598 Victoria 33
## 22 Coogee - Clovelly 0.00595 New South Wal~ 654
## 23 Gladesville - Huntleys Point 0.00593 New South Wal~ 20
## 24 Forster 0.00574 New South Wal~ 26
## 25 Ryde 0.00564 New South Wal~ 18
## 26 Collingwood 0.00560 Victoria 133
## 27 Bondi Junction - Waverly 0.00557 New South Wal~ 352
## 28 South Yarra - West 0.00551 Victoria 115
## 29 Bondi Beach - North Bondi 0.00542 New South Wal~ 1782
## 30 Sydney - Haymarket - The Rocks 0.00541 New South Wal~ 761
## 31 Chatswood (West) - Lane Cove North 0.00532 New South Wal~ 57
## 32 Concord West - North Strathfield 0.00531 New South Wal~ 73
## 33 Haberfield - Summer Hill 0.00525 New South Wal~ 19
## 34 Randwick - South 0.00521 New South Wal~ 182
## 35 Buderim - North 0.00519 Queensland 10
## 36 Palm Beach 0.00509 Queensland 61
## 37 Southport - South 0.00507 Queensland 26
## 38 Currumbin - Tugun 0.00490 Queensland 67
## 39 Mascot - Eastlakes 0.00481 New South Wal~ 62
## 40 Rosebud - McCrae 0.00478 Victoria 44
## 41 Fitzroy North 0.00472 Victoria 88
## 42 Glebe - Forest Lodge 0.00467 New South Wal~ 271
## 43 Kingsford 0.00461 New South Wal~ 67
## 44 Box Hill 0.00461 Victoria 25
## 45 Marcoola - Mudjimba 0.00457 Queensland 26
## 46 Woollahra 0.00443 New South Wal~ 118
## 47 Double Bay - Bellevue Hill 0.00442 New South Wal~ 536
## 48 Neutral Bay - Kirribilli 0.00441 New South Wal~ 387
## 49 Chatswood (East) - Artarmon 0.00440 New South Wal~ 52
## 50 Ashfield 0.00431 New South Wal~ 38
## # ... with 305 more rows
data %>%
filter(SA2_NAME16 %in%
c("Broadbeach Waters",
"Torquay")) %>%
ggplot(aes(x = date)) +
geom_line(aes(y = m5_fit, group = SA2_NAME16),
col = "darkorchid4") +
geom_point(aes(y = rent_50p_int, size = record_count_int),
col = "#00AFBB", alpha = 0.3) +
geom_point(aes(y = adr_50p_int, size = n_listings_int),
col = "#E7B800", alpha = 0.33) +
theme_minimal() +
xlab("") + ylab("Rent / fitted") +
facet_wrap(~SA2_NAME16, scales = "free_y")data %>%
select(SA2_NAME16, STE_NAME16, date, n_listings_int, diff) %>%
arrange(diff) %>%
print(n = 50)## # A tibble: 9,585 x 5
## SA2_NAME16 STE_NAME16 date n_listings_int diff
## <chr> <chr> <date> <int> <dbl>
## 1 Avoca Beach - Copacabana New South Wal~ 2018-07-01 133 -0.437
## 2 Avoca Beach - Copacabana New South Wal~ 2018-06-01 130 -0.436
## 3 Broadbeach Waters Queensland 2017-05-01 30 -0.102
## 4 Brunswick Heads - Ocean Sho~ New South Wal~ 2018-02-01 83 -0.101
## 5 Jindabyne - Berridale New South Wal~ 2018-02-01 301 -0.0994
## 6 Brunswick Heads - Ocean Sho~ New South Wal~ 2018-01-01 82 -0.0967
## 7 Jindabyne - Berridale New South Wal~ 2018-09-01 416 -0.0938
## 8 Brunswick Heads - Ocean Sho~ New South Wal~ 2017-12-01 86 -0.0923
## 9 Narooma - Bermagui New South Wal~ 2017-02-01 23 -0.0895
## 10 Jindabyne - Berridale New South Wal~ 2018-01-01 277 -0.0841
## 11 Brunswick Heads - Ocean Sho~ New South Wal~ 2017-10-01 86 -0.0831
## 12 Broadbeach Waters Queensland 2017-01-01 26 -0.0806
## 13 Narooma - Bermagui New South Wal~ 2017-01-01 23 -0.0802
## 14 Eimeo - Rural View Queensland 2017-12-01 29 -0.0796
## 15 Narooma - Bermagui New South Wal~ 2017-03-01 24 -0.0744
## 16 Albury - South New South Wal~ 2018-12-01 34 -0.0744
## 17 Brunswick Heads - Ocean Sho~ New South Wal~ 2017-08-01 86 -0.0739
## 18 Portland Victoria 2018-09-01 20 -0.0735
## 19 Eimeo - Rural View Queensland 2017-11-01 28 -0.0734
## 20 Carlton Victoria 2017-10-01 271 -0.0734
## 21 Main Beach Queensland 2017-02-01 38 -0.0725
## 22 Fremantle - South Western Austr~ 2017-11-01 53 -0.0722
## 23 Narooma - Bermagui New South Wal~ 2016-12-01 21 -0.0703
## 24 Peregian Beach - Marcus Bea~ Queensland 2018-04-01 60 -0.0702
## 25 Scarborough - Newport - Mor~ Queensland 2018-08-01 23 -0.0695
## 26 Brunswick Heads - Ocean Sho~ New South Wal~ 2017-07-01 82 -0.0694
## 27 Peregian Beach - Marcus Bea~ Queensland 2017-12-01 43 -0.0688
## 28 Carlton Victoria 2017-09-01 249 -0.0680
## 29 Broadbeach Waters Queensland 2017-06-01 30 -0.0677
## 30 Portland Victoria 2018-08-01 20 -0.0676
## 31 Eimeo - Rural View Queensland 2017-10-01 28 -0.0672
## 32 Torquay Victoria 2019-01-01 103 -0.0671
## 33 Kiama New South Wal~ 2016-12-01 36 -0.0663
## 34 Main Beach Queensland 2018-11-01 119 -0.0655
## 35 Williamstown Victoria 2017-04-01 18 -0.0655
## 36 Broadbeach Waters Queensland 2017-08-01 33 -0.0654
## 37 Mount Eliza Victoria 2017-09-01 13 -0.0652
## 38 Brunswick Heads - Ocean Sho~ New South Wal~ 2017-06-01 78 -0.0650
## 39 Lenah Valley - Mount Stuart Tasmania 2018-05-01 20 -0.0649
## 40 Mount Hawthorn - Leederville Western Austr~ 2017-10-01 27 -0.0646
## 41 Scarborough Western Austr~ 2018-01-01 124 -0.0644
## 42 Botany New South Wal~ 2019-01-01 25 -0.0643
## 43 Old Bar - Manning Point - R~ New South Wal~ 2017-03-01 20 -0.0638
## 44 Mansfield (Vic.) Victoria 2018-02-01 62 -0.0638
## 45 Lenah Valley - Mount Stuart Tasmania 2018-04-01 21 -0.0637
## 46 Fremantle - South Western Austr~ 2017-09-01 53 -0.0633
## 47 Cottesloe Western Austr~ 2017-08-01 97 -0.0626
## 48 Airlie - Whitsundays Queensland 2017-04-01 332 -0.0625
## 49 Maylands Western Austr~ 2017-10-01 41 -0.0622
## 50 Portland Victoria 2018-07-01 20 -0.0619
## # ... with 9,535 more rows
data %>%
filter(SA2_NAME16 %in%
c("Avoca Beach - Copacabana",
"Brunswick Heads - Ocean Shores")) %>%
ggplot(aes(x = date)) +
geom_line(aes(y = m5_fit, group = SA2_NAME16),
col = "darkorchid4") +
geom_point(aes(y = rent_50p_int, size = record_count_int),
col = "#00AFBB", alpha = 0.3) +
geom_point(aes(y = adr_50p_int, size = n_listings_int),
col = "#E7B800", alpha = 0.33) +
theme_minimal() +
xlab("") + ylab("Rent / fitted") +
facet_wrap(~SA2_NAME16, scales = "free_y")data %>%
select(SA2_NAME16, STE_NAME16, date, n_listings_int, diff) %>%
arrange(desc(diff)) %>%
print(n = 30)## # A tibble: 9,585 x 5
## SA2_NAME16 STE_NAME16 date n_listings_int diff
## <chr> <chr> <date> <int> <dbl>
## 1 Narooma - Bermagui New South Wales 2018-08-01 55 0.386
## 2 Fremantle Western Austra~ 2019-01-01 266 0.0850
## 3 Broadbeach Waters Queensland 2018-01-01 44 0.0832
## 4 Main Beach Queensland 2017-10-01 67 0.0822
## 5 Main Beach Queensland 2017-11-01 70 0.0821
## 6 Main Beach Queensland 2018-01-01 77 0.0816
## 7 Main Beach Queensland 2018-03-01 101 0.0812
## 8 Caloundra - Kings Beach Queensland 2019-01-01 120 0.0790
## 9 Broadbeach Waters Queensland 2018-02-01 48 0.0788
## 10 Broadbeach Waters Queensland 2018-03-01 62 0.0744
## 11 Main Beach Queensland 2017-12-01 76 0.0734
## 12 Broadbeach Waters Queensland 2018-04-01 66 0.0700
## 13 Kiama New South Wales 2017-09-01 67 0.0699
## 14 Kiama New South Wales 2017-06-01 62 0.0674
## 15 Old Bar - Manning Point - R~ New South Wales 2017-07-01 20 0.0669
## 16 Phillip Island Victoria 2018-06-01 126 0.0657
## 17 Broadbeach Waters Queensland 2018-05-01 68 0.0656
## 18 Main Beach Queensland 2018-02-01 80 0.0644
## 19 Main Beach Queensland 2018-04-01 111 0.0638
## 20 Airlie - Whitsundays Queensland 2018-04-01 431 0.0637
## 21 West Hobart Tasmania 2017-03-01 43 0.0634
## 22 Old Bar - Manning Point - R~ New South Wales 2017-08-01 20 0.0629
## 23 Broadbeach Waters Queensland 2018-06-01 70 0.0613
## 24 Phillip Island Victoria 2018-07-01 128 0.0600
## 25 Kiama New South Wales 2017-05-01 57 0.0598
## 26 Fremantle - South Western Austra~ 2019-01-01 65 0.0594
## 27 Old Bar - Manning Point - R~ New South Wales 2017-09-01 20 0.0588
## 28 Airlie - Whitsundays Queensland 2018-05-01 433 0.0587
## 29 West Hobart Tasmania 2017-04-01 43 0.0586
## 30 Narooma - Bermagui New South Wales 2018-11-01 72 0.0586
## # ... with 9,555 more rows
data %>%
filter(SA2_NAME16 %in%
c("Fremantle",
"Main Beach")) %>%
ggplot(aes(x = date)) +
geom_line(aes(y = m5_fit, group = SA2_NAME16),
col = "darkorchid4") +
geom_point(aes(y = rent_50p_int, size = record_count_int),
col = "#00AFBB", alpha = 0.3) +
geom_point(aes(y = adr_50p_int, size = n_listings_int),
col = "#E7B800", alpha = 0.33) +
theme_minimal() +
xlab("") + ylab("Rent / fitted") +
facet_wrap(~SA2_NAME16, scales = "free_y")